<!DOCTYPE html>
<html lang="en-US">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <title>HTTP 和 HTTPS | 悄悄的卷，然后卷死所有人</title>
    <meta name="description" content="这是一个奇怪的地方">
    <link rel="stylesheet" href="/blobview/assets/style.019f39fc.css">
    <link rel="modulepreload" href="/blobview/assets/Home.d05cdc04.js">
    <link rel="modulepreload" href="/blobview/assets/app.a4363fd4.js">
    <link rel="modulepreload" href="/blobview/assets/fe_secondary_interviews_network.md.d5842ea6.lean.js">
    <link rel="modulepreload" href="/blobview/assets/app.a4363fd4.js">
    <meta name="twitter:title" content="HTTP 和 HTTPS | 悄悄的卷，然后卷死所有人">
    <meta property="og:title" content="HTTP 和 HTTPS | 悄悄的卷，然后卷死所有人">
  </head>
  <body>
    <div id="app"><!--[--><div class="theme"><header class="nav-bar" data-v-675d8756><div class="sidebar-button" data-v-675d8756><svg class="icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z" class></path></svg></div><a class="nav-bar-title" href="/blobview/" aria-label="悄悄的卷，然后卷死所有人, back to home" data-v-675d8756 data-v-4a583abe><!----> 悄悄的卷，然后卷死所有人</a><div class="flex-grow" data-v-675d8756></div><div class="nav" data-v-675d8756><nav class="nav-links" data-v-675d8756 data-v-eab3edfe><!--[--><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item" href="/blobview/" data-v-b8818f8c>Home <!----></a></div></div><div class="item" data-v-eab3edfe><div class="nav-dropdown-link" data-v-eab3edfe data-v-56bf3a3f><button class="button" data-v-56bf3a3f><span class="button-text" data-v-56bf3a3f>前端君</span><span class="right button-arrow" data-v-56bf3a3f></span></button><ul class="dialog" data-v-56bf3a3f><!--[--><li class="dialog-item" data-v-56bf3a3f><div class="nav-dropdown-link-item" data-v-56bf3a3f data-v-bbc27490><a class="item active" href="/blobview/fe/secondary/interviews/network" data-v-bbc27490><span class="arrow" data-v-bbc27490></span><span class="text" data-v-bbc27490>面试八股文</span><span class="icon" data-v-bbc27490><!----></span></a></div></li><li class="dialog-item" data-v-56bf3a3f><div class="nav-dropdown-link-item" data-v-56bf3a3f data-v-bbc27490><a class="item" href="/blobview/fe/algorithm" data-v-bbc27490><span class="arrow" data-v-bbc27490></span><span class="text" data-v-bbc27490>算法大卷</span><span class="icon" data-v-bbc27490><!----></span></a></div></li><li class="dialog-item" data-v-56bf3a3f><div class="nav-dropdown-link-item" data-v-56bf3a3f data-v-bbc27490><a class="item" href="/blobview/fe/errormd/chrome插件开发指南" data-v-bbc27490><span class="arrow" data-v-bbc27490></span><span class="text" data-v-bbc27490>坑你太美</span><span class="icon" data-v-bbc27490><!----></span></a></div></li><!--]--></ul></div></div><div class="item" data-v-eab3edfe><div class="nav-dropdown-link" data-v-eab3edfe data-v-56bf3a3f><button class="button" data-v-56bf3a3f><span class="button-text" data-v-56bf3a3f>稀奇君</span><span class="right button-arrow" data-v-56bf3a3f></span></button><ul class="dialog" data-v-56bf3a3f><!--[--><li class="dialog-item" data-v-56bf3a3f><div class="nav-dropdown-link-item" data-v-56bf3a3f data-v-bbc27490><a class="item active" href="/blobview/fe/secondary/interviews/network" data-v-bbc27490><span class="arrow" data-v-bbc27490></span><span class="text" data-v-bbc27490>web3</span><span class="icon" data-v-bbc27490><!----></span></a></div></li><!--]--></ul></div></div><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item" href="/blobview/b" data-v-b8818f8c>杂谈君 <!----></a></div></div><!--]--><!----><!----></nav></div><!--[--><!--]--></header><aside class="sidebar" data-v-83e92a68><nav class="nav-links nav" data-v-83e92a68 data-v-eab3edfe><!--[--><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item" href="/blobview/" data-v-b8818f8c>Home <!----></a></div></div><div class="item" data-v-eab3edfe><div class="nav-dropdown-link" data-v-eab3edfe data-v-56bf3a3f><button class="button" data-v-56bf3a3f><span class="button-text" data-v-56bf3a3f>前端君</span><span class="right button-arrow" data-v-56bf3a3f></span></button><ul class="dialog" data-v-56bf3a3f><!--[--><li class="dialog-item" data-v-56bf3a3f><div class="nav-dropdown-link-item" data-v-56bf3a3f data-v-bbc27490><a class="item active" href="/blobview/fe/secondary/interviews/network" data-v-bbc27490><span class="arrow" data-v-bbc27490></span><span class="text" data-v-bbc27490>面试八股文</span><span class="icon" data-v-bbc27490><!----></span></a></div></li><li class="dialog-item" data-v-56bf3a3f><div class="nav-dropdown-link-item" data-v-56bf3a3f data-v-bbc27490><a class="item" href="/blobview/fe/algorithm" data-v-bbc27490><span class="arrow" data-v-bbc27490></span><span class="text" data-v-bbc27490>算法大卷</span><span class="icon" data-v-bbc27490><!----></span></a></div></li><li class="dialog-item" data-v-56bf3a3f><div class="nav-dropdown-link-item" data-v-56bf3a3f data-v-bbc27490><a class="item" href="/blobview/fe/errormd/chrome插件开发指南" data-v-bbc27490><span class="arrow" data-v-bbc27490></span><span class="text" data-v-bbc27490>坑你太美</span><span class="icon" data-v-bbc27490><!----></span></a></div></li><!--]--></ul></div></div><div class="item" data-v-eab3edfe><div class="nav-dropdown-link" data-v-eab3edfe data-v-56bf3a3f><button class="button" data-v-56bf3a3f><span class="button-text" data-v-56bf3a3f>稀奇君</span><span class="right button-arrow" data-v-56bf3a3f></span></button><ul class="dialog" data-v-56bf3a3f><!--[--><li class="dialog-item" data-v-56bf3a3f><div class="nav-dropdown-link-item" data-v-56bf3a3f data-v-bbc27490><a class="item active" href="/blobview/fe/secondary/interviews/network" data-v-bbc27490><span class="arrow" data-v-bbc27490></span><span class="text" data-v-bbc27490>web3</span><span class="icon" data-v-bbc27490><!----></span></a></div></li><!--]--></ul></div></div><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item" href="/blobview/b" data-v-b8818f8c>杂谈君 <!----></a></div></div><!--]--><!----><!----></nav><!--[--><!--]--><ul class="sidebar-links" data-v-83e92a68><!--[--><li class="sidebar-link"><p class="sidebar-link-item">面试八股文</p><ul class="sidebar-links"><li class="sidebar-link"><a class="sidebar-link-item active" href="/blobview/fe/secondary/interviews/network">网络协议</a><ul class="sidebar-links"><li class="sidebar-link"><a class="sidebar-link-item" href="#http-和-https-的基本概念">http 和 https 的基本概念</a><!----></li><li class="sidebar-link"><a class="sidebar-link-item" href="#http-和-https-的区别及优缺点？">http 和 https 的区别及优缺点？</a><!----></li><li class="sidebar-link"><a class="sidebar-link-item" href="#https-协议的工作原理">https 协议的工作原理</a><!----></li><li class="sidebar-link"><a class="sidebar-link-item" href="#get-和-post-的请求的区别">GET 和 POST 的请求的区别</a><!----></li><li class="sidebar-link"><a class="sidebar-link-item" href="#http-是什么">HTTP 是什么</a><!----></li><li class="sidebar-link"><a class="sidebar-link-item" href="#http-协议的版本？">HTTP 协议的版本？</a><!----></li><li class="sidebar-link"><a class="sidebar-link-item" href="#http-请求和响应的结构">HTTP 请求和响应的结构</a><!----></li><li class="sidebar-link"><a class="sidebar-link-item" href="#get-和-post-请求有什么区别？">GET 和 POST 请求有什么区别？</a><ul class="sidebar-links"><li class="sidebar-link"><a class="sidebar-link-item" href="#好的，进一步详细解释一下-get-和-post-请求的区别：">好的，进一步详细解释一下 GET 和 POST 请求的区别：</a><!----></li></ul></li><li class="sidebar-link"><a class="sidebar-link-item" href="#http-与-https-区别">HTTP 与 HTTPS 区别</a><!----></li><li class="sidebar-link"><a class="sidebar-link-item" href="#状态码">状态码</a><!----></li><li class="sidebar-link"><a class="sidebar-link-item" href="#option-请求是什么意思？">option 请求是什么意思？</a><!----></li></ul></li><li class="sidebar-link"><a class="sidebar-link-item" href="/blobview/fe/secondary/interviews/modular">模块化</a><!----></li><li class="sidebar-link"><a class="sidebar-link-item" href="/blobview/fe/secondary/Javascript/javascript">JavaScript</a><!----></li><li class="sidebar-link"><a class="sidebar-link-item" href="/blobview/guide/getting-started">浏览器</a><!----></li><li class="sidebar-link"><a class="sidebar-link-item" href="/blobview/">性能优化</a><!----></li><li class="sidebar-link"><a class="sidebar-link-item" href="/blobview/">Vue</a><!----></li><li class="sidebar-link"><a class="sidebar-link-item" href="/blobview/">前端构建</a><!----></li></ul></li><!--]--></ul><!--[--><!--]--></aside><div class="sidebar-mask"></div><main class="page" data-v-7eddb2c4><div class="container" data-v-7eddb2c4><!--[--><!--]--><div style="position:relative;" class="content" data-v-7eddb2c4><div><h1 id="http-和-https" tabindex="-1">HTTP 和 HTTPS <a class="header-anchor" href="#http-和-https" aria-hidden="true">#</a></h1><h2 id="http-和-https-的基本概念" tabindex="-1">http 和 https 的基本概念 <a class="header-anchor" href="#http-和-https-的基本概念" aria-hidden="true">#</a></h2><p>http: 是一个客户端和服务器端请求和应答的标准（TCP），用于从 WWW 服务器传输超文本到本地浏览器的超文本传输协议。</p><p>https:是以安全为目标的 HTTP 通道，即 HTTP 下 加入 SSL 层进行加密。其作用是：建立一个信息安全通道，来确保数据的传输，确保网站的真实性。</p><p><a href="https://mziname.oss-cn-beijing.aliyuncs.com/images/ajaet-6qovx.webp" target="_blank" rel="noopener noreferrer">传送门：笔记图片-O(∩_∩)</a></p><h2 id="http-和-https-的区别及优缺点？" tabindex="-1">http 和 https 的区别及优缺点？ <a class="header-anchor" href="#http-和-https-的区别及优缺点？" aria-hidden="true">#</a></h2><ul><li><p>http 是超文本传输协议，信息是明文传输，HTTPS 协议要比 http 协议安全，https 是具有安全性的 ssl 加密传输协议，可防止数据在传输过程中被窃取、改变，确保数据的完整性(当然这种安全性并非绝对的，对于更深入的 Web 安全问题，此处暂且不表)。</p></li><li><p>http 协议的默认端口为 80，https 的默认端口为 443。</p></li><li><p>http 的连接很简单，是无状态的。https 握手阶段比较费时，会使页面加载时间延长 50%，增加 10%~20%的耗电</p></li><li><p>https 缓存不如 http 高效，会增加数据开销。</p></li><li><p>Https 协议需要 ca 证书，费用较高，功能越强大的证书费用越高。</p></li><li><p>SSL 证书需要绑定 IP，不能再同一个 IP 上绑定多个域名，IPV4 资源支持不了这种消耗。</p></li></ul><h2 id="https-协议的工作原理" tabindex="-1">https 协议的工作原理 <a class="header-anchor" href="#https-协议的工作原理" aria-hidden="true">#</a></h2><ol><li><p>客户端在使用 HTTPS 方式与 Web 服务器通信时有以下几个步骤：</p></li><li><p>客户端使用 https url 访问服务器，则要求 web 服务器建立 ssl 链接。</p></li><li><p>web 服务器接收到客户端的请求之后，会将网站的证书（证书中包含了公钥），传输给客户端。</p></li><li><p>客户端和 web 服务器端开始协商 SSL 链接的安全等级，也就是加密等级。 客户端浏览器通过双方协商一致的安全等级，建立会话密钥，然后通过网站的公钥来加密会话密钥，并传送给网站。</p></li><li><p>web 服务器通过自己的私钥解密出会话密钥。</p></li><li><p>web 服务器通过会话密钥加密与客户端之间的通信</p></li></ol><p><a href="https://juejin.cn/post/6995109407545622542" target="_blank" rel="noopener noreferrer">传送门：解读 HTTP1\HTTP2\HTTP3</a></p><h2 id="get-和-post-的请求的区别" tabindex="-1">GET 和 POST 的请求的区别 <a class="header-anchor" href="#get-和-post-的请求的区别" aria-hidden="true">#</a></h2><ul><li><p><strong>应用场景</strong> ：</p><ul><li>一般 GET 请求用于对服务器资源不会产生影响的场景，比如说请求一个网页的资源。</li><li>而 POST 操作，一般用于对服务器资源产生影响下的场景，比如注册用户这一类的场景；</li></ul></li><li><p><strong>是否缓存</strong>：</p><ul><li>浏览器一般对 GET 请求缓存，但很少对 POST 请求进行缓存</li></ul></li><li><p>发送的报文格式：</p><ul><li>GET <ul><li>报文中实体部分为空</li></ul></li><li>POST <ul><li>报文实体部分一般为向服务器发送的数据</li></ul></li></ul></li><li><p>安全性：GET 请求可以将请求的参数放到 URL 中向服务器发送，这样的做法相对 POST 请求来说不太安全，因为请求的 URL 会保留在梨树记录中</p></li><li><p>请求长度：浏览器由于对 URL 有长度的限制，所以会影响 GET 请求发送数据时的长度。这个限制是各个浏览器规定的，不是一个标准规范；</p></li><li><p>参数类型：POST 的参数传递支持更多的数据类型</p></li></ul><h2 id="http-是什么" tabindex="-1">HTTP 是什么 <a class="header-anchor" href="#http-是什么" aria-hidden="true">#</a></h2><p>HTTP（HyperText Transfer Protocol）是一种用于传输网络上的超文本数据的协议。它基于客户端-服务器架构，客户端发起请求，服务器返回响应。</p><p>HTTP 是一个无状态协议，这意味着每个请求和响应都是独立的，服务器不会保留任何关于客户端的信息，每次请求都需要重新建立连接，并且无法判断同一个客户端发送的不同请求是否属于同一个会话。</p><p>HTTP 协议的默认端口是 80，在加密的情况下为 443。HTTP 1.0 和 1.1 是目前广泛使用的两个版本，其中 1.1 增加了持久连接、管道化消息、块编码传输和主机名称的虚拟映射等新特性。</p><h2 id="http-协议的版本？" tabindex="-1">HTTP 协议的版本？ <a class="header-anchor" href="#http-协议的版本？" aria-hidden="true">#</a></h2><ul><li><p>HTTP/1.0：在 1.0 版本中，加入了 HTTP 消息头和请求方法的概念，支持多种数据类型传输和编码方式。但由于无法复用连接以及其他一些限制，1.0 版本的性能并不理想。</p></li><li><p>HTTP/1.1：增加了持久连接、管道化消息、块编码传输和主机名称虚拟映射等新特性，在性能和可靠性方面有很大的提升。目前被广泛使用。</p></li><li><p>HTTP/2：性能比 1.1 版本更佳，支持多路复用，头部压缩和服务器推送等新特性。HTTP/2 相对于 HTTP/1.1 的主要改进在于使用二进制协议框架，数据包头信息压缩，允许多路复用，即多个请求和响应同时使用一个 TCP 连接传输。</p></li><li><p>HTTP/3：是基于 QUIC 协议的 HTTP 协议版本，它使用 UDP 协议作为传输协议，相比于 TCP 更加灵活高效。HTTP/3 在性能和可靠性方面有很大的提升，但目前仍处于试验阶段。</p></li></ul><h2 id="http-请求和响应的结构" tabindex="-1">HTTP 请求和响应的结构 <a class="header-anchor" href="#http-请求和响应的结构" aria-hidden="true">#</a></h2><ul><li>请求行 <ul><li>请求行（Request Line）：请求行由请求方法、请求资源路径和 HTTP 协议版本组成，它们之间使用空格分隔。一般来说，HTTP 请求的方法常见的有 GET、POST、PUT、DELETE、HEAD 等。请求资源路径是请求的目标地址，</li></ul></li><li>请求头 <ul><li>请求头（Request Headers）：请求头包含一些描述请求的各种信息，例如请求的 Host、User-Agent、Accept、Authorization 和 Content-Type 等。请求头部以一个空行作为结束标志。</li></ul></li><li>请求主题 <ul><li>请求主体（Request Body）：请求主体包含请求发送的数据，例如 POST 请求中包含的表单数据。请求主体是可选的，GET 请求通常没有请求主体</li></ul></li></ul><hr><ul><li>状态行 <ul><li>状态行（Status Line）：状态行由协议版本、状态码和状态描述组成，它们之间使用空格分隔。例如，HTTP/1.1 200 OK，其中协议版本是 HTTP/1.1，状态码是 200，状态描述是 OK。</li></ul></li><li>响应头部 <ul><li>响应头（Response Headers）：响应头包含一些描述响应的各种信息，例如响应的日期、内容类型、内容长度等。响应头以一个空行作为结束标志。</li></ul></li><li>响应主体 <ul><li>响应主体（Response Body）：响应主体包含服务器返回的实际数据。例如，如果请求的是一个 HTML 页面，那么响应主体就是 HTML 代码。</li></ul></li></ul><h2 id="get-和-post-请求有什么区别？" tabindex="-1">GET 和 POST 请求有什么区别？ <a class="header-anchor" href="#get-和-post-请求有什么区别？" aria-hidden="true">#</a></h2><p>GET 和 POST 是 HTTP 协议中常用的两种请求方法，其最主要的区别在于：</p><p>GET 请求的数据在 URL 中，POST 请求的数据在 body 中；</p><p>GET 请求只能进行简单的数据查询操作，而 POST 请求可以进行数据修改、新增和删除等操作。</p><p>具体来说，GET 请求会将请求参数拼接在 URL 后面，即形如 <a href="http://example.com/search?q=keyword" target="_blank" rel="noopener noreferrer">http://example.com/search?q=keyword</a> 的形式，因此请求的数据会被暴露在 URL 中，不适合传输敏感信息。而 POST 请求会将请求参数放在 body 中，可以传输较大的数据，更加安全。另外，POST 可以发送较复杂的数据结构，如 JSON、XML 等格式。 在实际应用中，一般通过 GET 请求获取资源（如网页、图片等），通过 POST 请求提交表单数据，进行数据操作。</p><h3 id="好的，进一步详细解释一下-get-和-post-请求的区别：" tabindex="-1">好的，进一步详细解释一下 GET 和 POST 请求的区别： <a class="header-anchor" href="#好的，进一步详细解释一下-get-和-post-请求的区别：" aria-hidden="true">#</a></h3><h4 id="数据传输位置" tabindex="-1">数据传输位置 <a class="header-anchor" href="#数据传输位置" aria-hidden="true">#</a></h4><p>GET 请求的参数会直接附加在 URL 的后面，形如http://www.example.com/index.php?param1=value1&amp;param2=value2，而POST请求是将参数放在HTTP请求的body中。</p><h4 id="数据长度" tabindex="-1">数据长度 <a class="header-anchor" href="#数据长度" aria-hidden="true">#</a></h4><p>由于 GET 请求的参数在 URL 后面，所以传输的字符数有限制，理论上来说是无限制的，但是浏览器和服务器会对其进行限制，网络上常见的限制是 2k 个字符左右。而 POST 请求的数据则无此限制，默认是没有大小限制的。</p><h4 id="安全性" tabindex="-1">安全性 <a class="header-anchor" href="#安全性" aria-hidden="true">#</a></h4><p>GET 请求所传输的数据会显示在 URL 中，而 URL 通常都会被浏览器记录下来，如果用户照常使用浏览器，那么也就会将数据显示在历史记录中，因此 GET 请求不适合传输敏感数据。而 POST 请求的数据则放在 HTTP 请求的 body 中，不会作为参数显示在 URL 上，因此 POST 请求更加安全。</p><h4 id="缓存" tabindex="-1">缓存 <a class="header-anchor" href="#缓存" aria-hidden="true">#</a></h4><p>GET 请求会被缓存，POST 请求不会，因为 GET 请求通常是获取资源，而资源不随时间改变，可以缓存，而 POST 请求是对资源进行改变，一般不会缓存。</p><h4 id="幂等性" tabindex="-1">幂等性 <a class="header-anchor" href="#幂等性" aria-hidden="true">#</a></h4><p>GET 请求是幂等的，因为查询操作不会对资源造成修改。而 POST 请求是非幂等的，因为每次请求都会对资源进行修改。 总结一下，GET 请求适用于获取资源的操作，可以被缓存，速度相对较快。而 POST 请求则适用于对资源进行修改等操作，安全性更高，数据传输的大小也没有限制。而在实际应用中，需要根据具体的场景选择使用 GET 或 POST 请求来进行通信。</p><h2 id="http-与-https-区别" tabindex="-1">HTTP 与 HTTPS 区别 <a class="header-anchor" href="#http-与-https-区别" aria-hidden="true">#</a></h2><p>HTTP（Hypertext Transfer Protocol）和HTTPS（Hypertext Transfer Protocol Secure）都是互联网上常用的通信协议，它们主要的区别在于安全性和数据传输方式上。</p><p><strong>HTTP是一种基于TCP/IP协议来传递数据的应用层协议，传输速度快但安全性较低，传输的数据是明文传输的，容易被窃听和篡改。</strong></p><p><strong>HTTPS是基于HTTP之上的加密协议，它通过使用SSL/TLS协议来加密传输的数据，确保通信过程中传输的数据不会被中间人窃取和篡改。HTTPS方式数据传输时采用对称密钥来加密数据，这种方式可以保证高效的数据传输和完整性，而SSL证书则能够保证通信安全。</strong></p><p>除了安全性上的区别，HTTP和HTTPS在数据传输上也有明显的不同。HTTP使用的是明文传输，数据容易在网络上被截获和篡改，因此不够安全可靠。而HTTPS传输的数据在传输前都会进行加密，这样即使数据被截获，也无法查看其中的内容。</p><p>总结一下，HTTP协议提供了高效的数据传输方式，但安全性相对较低；而HTTPS协议则提供了更加安全的数据传输方式，但由于加密和解密的过程会影响数据传输效率，因此其速度相对较慢。在实际场景中，应根据具体需要选择合适的协议。一般来说，对于敏感数据和重要信息的传输，建议使用HTTPS来保证通信安全可靠。</p><h2 id="状态码" tabindex="-1">状态码 <a class="header-anchor" href="#状态码" aria-hidden="true">#</a></h2><ul><li>1xx（信息性状态码）： 100 继续 101 切换协议</li><li>2xx（成功状态码）： 200 OK 201 已创建 202 已接受 204 无内容 206 部分内容</li><li>3xx（重定向状态码）： 301 永久移动 302 临时移动 304 未修改</li><li>4xx（客户端错误状态码）： 400 错误请求 401 未授权 403 禁止访问 404 未找到页面</li><li>5xx（服务器错误状态码）： 500 服务器内部错误 503 服务不可用</li></ul><h2 id="option-请求是什么意思？" tabindex="-1">option 请求是什么意思？ <a class="header-anchor" href="#option-请求是什么意思？" aria-hidden="true">#</a></h2><p>OPTIONS 请求是一种 HTTP 方法，它用于返回服务器针对特定资源所支持的 HTTP 请求方法。</p><p>客户端可以使用 OPTIONS 方法来决定如何处理对该资源的请求。服务器会返回一个包括了 Allow、Accept-Patch、Accept-Ranges、Cache-Control、Connection、Content-Encoding、Content-Language、Content-Length、Content-MD5、Content-Type 等多个头部信息的响应，这些头部信息指示了该资源支持的所有 HTTP 方法以及其他的特性。</p><p>在 CORS 中，OPTIONS 方法被用于检测服务器是否允许发送跨域请求。</p><p>总结： OPTIONS 请求的主要作用是在客户端和服务器交互之前，通过请求服务器支持的方法和协议，为交互做好准备工作。</p><p>举个例子：</p><p>假设我们的服务器上有一些数据资源，比如图片、文本、视频等，这些资源可以通过 HTTP 协议来获取。如果客户端想要请求其中某个资源，他们可以使用 GET、POST 等 HTTP 方法，这些方法和服务器之间的交互方式都是通过 HTTP 协议来规定的。但如果客户端不知道该服务器上支持哪些方法，就很难确定如何与服务器进行交互。</p><p>因此，如果客户端发送一个 OPTIONS 方法的请求，服务器会返回一个特殊的响应，其中包含了该服务器支持的所有 HTTP 方法，以及其他的一些元数据信息。客户端可以通过这些信息来决定在获取资源时使用哪种方法以及其他相应的设置。同时，这个响应也包括了 CORS 标准的一些元数据，其中一些元数据描述了该服务器是否允许对该资源使用跨域请求。</p><p>总之，OPTIONS 请求在客户端和服务器之间起到了一个预处理的作用，能够让客户端知道服务器支持什么样的方法以及其他的一些信息，从而保证它们之间的交互能够正常进行。</p></div></div><footer class="page-footer" data-v-7eddb2c4 data-v-fb8d84c6><div class="edit" data-v-fb8d84c6><div class="edit-link" data-v-fb8d84c6 data-v-1ed99556><!----></div></div><div class="updated" data-v-fb8d84c6><!----></div></footer><div class="next-and-prev-link" data-v-7eddb2c4 data-v-38ede35f><div class="container" data-v-38ede35f><div class="prev" data-v-38ede35f><!----></div><div class="next" data-v-38ede35f><a class="link" href="/blobview/fe/secondary/interviews/modular" data-v-38ede35f><span class="text" data-v-38ede35f>模块化</span><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="icon icon-next" data-v-38ede35f><path d="M19.9,12.4c0.1-0.2,0.1-0.5,0-0.8c-0.1-0.1-0.1-0.2-0.2-0.3l-7-7c-0.4-0.4-1-0.4-1.4,0s-0.4,1,0,1.4l5.3,5.3H5c-0.6,0-1,0.4-1,1s0.4,1,1,1h11.6l-5.3,5.3c-0.4,0.4-0.4,1,0,1.4c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3l7-7C19.8,12.6,19.9,12.5,19.9,12.4z"></path></svg></a></div></div></div><!--[--><!--]--></div></main></div><!----><!--]--></div>
    <script>__VP_HASH_MAP__ = JSON.parse("{\"fe_algorithm.md\":\"e1054222\",\"fe_errormd_chrome插件开发指南.md\":\"8310a77a\",\"fe_errormd_mysql密码遗忘.md\":\"37b8860e\",\"fe_secondary_javascript_descriptors.md\":\"cd9a7474\",\"fe_secondary_javascript_javascript.md\":\"42853649\",\"fe_secondary_javascript_jicheng.md\":\"1cd0c4dc\",\"fe_secondary_javascript_jscopy.md\":\"66795111\",\"fe_secondary_javascript_js数据类型.md\":\"c6bc851f\",\"fe_secondary_javascript_let const var 的区别.md\":\"685e3545\",\"fe_secondary_javascript_weakmap.md\":\"2a0ba820\",\"fe_secondary_javascript_作用域.md\":\"220cfcf9\",\"fe_secondary_javascript_变量提升.md\":\"b63f20ee\",\"fe_secondary_javascript_闭包.md\":\"5404cbcf\",\"fe_secondary_python_基础知识.md\":\"ae39dc27\",\"fe_secondary_vite_vite杂烩记录.md\":\"aa7cf9a4\",\"fe_secondary_webpack_loader与plugin的不同.md\":\"e2712a7c\",\"fe_secondary_interviews_jstype.md\":\"b3e700ba\",\"fe_secondary_interviews_mianshi.md\":\"218f21c3\",\"fe_secondary_interviews_modular.md\":\"38434f4f\",\"fe_secondary_interviews_network.md\":\"d5842ea6\",\"fe_suanfa_tree树结构.md\":\"d41c852f\",\"fe_suanfa_二分查找.md\":\"28f745d1\",\"fe_suanfa_二叉树.md\":\"836f7969\",\"fe_suanfa_二叉树后序遍历.md\":\"af43c381\",\"fe_suanfa_二叉树展开链表.md\":\"cc410293\",\"fe_suanfa_二叉树最小深度.md\":\"d272316f\",\"fe_suanfa_二叉树的所有路径.md\":\"70f2feac\",\"fe_suanfa_二叉树的最大深度.md\":\"ab1fe25c\",\"fe_suanfa_冒泡排序.md\":\"b91ecca4\",\"fe_suanfa_前中后序遍历.md\":\"997426ab\",\"fe_suanfa_前缀和.md\":\"6ec90ae8\",\"fe_suanfa_区域和检索数组不可变.md\":\"6e447cdb\",\"fe_suanfa_反转数组.md\":\"c28c7d5f\",\"fe_suanfa_将有序数组转换为二叉搜索树.md\":\"6a79c21d\",\"fe_suanfa_差分.md\":\"101d6b54\",\"fe_suanfa_快速排序.md\":\"575fe1af\",\"fe_suanfa_插入排序.md\":\"078511c5\",\"fe_suanfa_滑动窗口.md\":\"08f684ff\",\"fe_suanfa_翻转二叉树.md\":\"1a866015\",\"fe_suanfa_选择排序.md\":\"a25eac11\",\"fe_suanfa_链表反转.md\":\"a642cc7a\",\"fe_web3_ethers_01-hellovitalik.md\":\"162c31f8\",\"fe_web3_ethers_02-合约交互.md\":\"08f30902\",\"fe_web3_ethers_03-发送eth.md\":\"fbf8825d\",\"index.md\":\"64947f2b\"}")</script>
    <script type="module" async src="/blobview/assets/app.a4363fd4.js"></script>
    
  </body>
</html>